home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hardcore Visual Basic 5.0 (2nd Edition)
/
Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso
/
Code
/
Goodies
/
CallBack
/
SOURCE
/
BASEDISP.H
< prev
next >
Wrap
C/C++ Source or Header
|
1995-10-03
|
2KB
|
70 lines
/*
* Visual Basic Callback Server Source
*
* (c) Copyright Microsoft Corp. 1995 All Rights Reserved
*/
#ifndef __BaseDisp_H__
#define __BaseDisp_H__
#include "ERRINFO.H"
#define DERIVE_BASE(X) CBaseIDispatch::Derive((CBaseIDispatch FAR*) (X), pDeriveFrom)
#define PASS_BASE(X) (CBaseIDispatch FAR*) X
#define GET_BASE CBaseIDispatch FAR* pDeriveFrom
CLASS CBaseIDispatch : public IDispatch
{
public:
static void Derive(CBaseIDispatch FAR* pDest, CBaseIDispatch FAR* pSource);
/* IUnknown methods */
STDMETHOD(QueryInterface)(REFIID riid, void FAR* FAR* ppvObj);
STDMETHOD_(ULONG, AddRef)(void);
STDMETHOD_(ULONG, Release)(void);
/* IDispatch methods */
STDMETHOD(GetTypeInfoCount)(UINT FAR* pctinfo);
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo FAR* FAR* pptinfo);
STDMETHOD(GetIDsOfNames)(
REFIID riid,
OLECHAR FAR* FAR* rgszNames,
UINT cNames,
LCID lcid,
DISPID FAR* rgdispid);
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS FAR* pdispparams,
VARIANT FAR* pvarResult,
EXCEPINFO FAR* pexcepinfo,
UINT FAR* puArgErr);
CBaseIDispatch(void);
virtual ~CBaseIDispatch(void);
protected:
const IID FAR* m_pIID;
CSupportErrorInfo FAR* m_pSupportErrorInfo;
private:
inline HRESULT LoadTypeInfo(void);
ITypeInfo FAR* m_ptinfo;
ULONG m_refs;
};
CLASS CProvideClassInfo : public IProvideClassInfo
{
public:
static HRESULT Create(ITypeInfo FAR* ptinfo, CProvideClassInfo FAR* FAR* retVal);
/* IUnknown methods */
STDMETHOD(QueryInterface)(REFIID riid, void FAR* FAR* ppvObj);
STDMETHOD_(ULONG, AddRef)(void);
STDMETHOD_(ULONG, Release)(void);
/*IProvideClassInfo*/
STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO FAR* ppTI);
CProvideClassInfo();
~CProvideClassInfo();
private:
ITypeInfo FAR* m_ptinfo;
unsigned long m_refs;
};
#endif